1. Field of the Invention
The present invention relates to communication with bus repeater devices within a computing system and, more particularly, to a method that enables initiators on a computer bus to determine the number, location and status of repeater devices on the computer bus.
2. Description of the Related Art
As long as there have been computers, users have attached peripheral hardware devices to them. Some of the typical hardware interfaces include Integrated Drive Electronics (IDE) and Enhanced IDE (EIDE) buses. One of the more popular and enduring interfaces is the small computer system interface (SCSI) bus. While an IDE bus is restricted to two disk drives and an EIDE bus is restricted to four devices, including hard disks and CD-ROM drives, the SCSI bus is able to support up to fifteen devices such as disk drives, CD-ROM drives, optical drives, printers, and communication devices. One of the attractions of the SCSI bus is its ability to easily adapt to new types of devices by using a standard set of commands, or the SCSI-3 command set.
The SCSI protocol specifies that communication between an initiator, or device that issues SCSI commands, and a target, a device that executes SCSI commands, takes place in phases: a BUS_FREE, ARBITRATION, SELECTION, RE-SELECTION, COMMAND, DATA, MESSAGE_IN, MESSAGE_OUT and STATUS phase. The first four phases, BUS_FREE, ARBITRATION, SELECTION, and RE-SELECTION, are used to setup a connection between an initiator and a target device.
The BUS_FREE phase is the initial state and, during the BUS_FREE phase, any SCSI device on a particular SCSI bus can attempt to take control of the bus. Often two or more devices request control at the same time (or within the period of a xe2x80x9cbus settle delayxe2x80x9dxe2x80x94typically 400 nanoseconds). Which device gains control is determined in the ARBITRATION phase. After the ARBITRATION phase, the SELECTION phase is performed where the initiator selected in the ARBITRATION phase signals a specific target device that a service is requested. The RE-SELECTION phase is used when an interrupted connection needs to be reestablished.
In the final phases, COMMAND, DATA, MESSAGE_IN, MESSAGE_OUT and STATUS, are known collectively as the DATA phases. During the DATA phases, the target device receives commands from the initiator, the two exchange data, and, if necessary, messages and status information are communicated.
To maximize performance, a SCSI bus should not exceed a predetermined length. For example, the predetermined length can be exceeded when a server, located in one box or unit, is connected through a SCSI bus to a mass storage subsystem, such as a disk drive array or a CD-ROM drive located in another box or unit. To prevent performance degradation, designers have implemented what is known as repeater circuits. Repeater circuits are used to couple short, terminated SCSI bus segments. The repeater circuit includes two ports with each port connected to a different terminated SCSI bus segment. The repeater circuit provides a buffer between the terminated bus segments in order to achieve a high performance SCSI bus that exceeds the predetermined length. To a SCSI controller, the terminated bus segments appear as a single SCSI bus.
The present invention relates to a method of and apparatus for in-band communication, outside the standard SCSI communication protocol, between an initiator device and either a SCSI bus repeater or a xe2x80x9cdaisy-chainxe2x80x9d of repeaters. The method and apparatus enable an initiator on a SCSI bus to determine the number, location and status of SCSI repeaters accessible on the SCSI bus. In addition, the method of and apparatus for the present invention enables communication that does not conform to a bus""s standard protocol to occur between devices on the bus
One embodiment of the present invention implements the in-band communication mode during the MESSAGE_IN phase of the SCSI protocol. The communication mode is initiated between an initiator and either a repeater or a chain of repeaters on a SCSI bus whenever four particular conditions are met for a length of time exceeding a bus settle delay.
Upon the occurrence of the four conditions for a length of time exceeding the bus settle delay, the repeater halts normal xe2x80x9cpass-throughxe2x80x9d functions, synchronizes to a clock signal (specifically the ATN signal) originating from the initiator, and communicates to the requesting initiator information such as an ID number, a device type, a revision number of the target""s software, and a checksum (to ensure that data has been communicated correctly).
Upon completion of the non-SCSI communication, the repeater resumes pass-through functionality, enabling either a target device to utilize normal SCSI communications or the next repeater in the chain of repeaters to repeat the non-SCSI communication process. In this fashion, repeaters can be strung together and the initiator is able to determine the number, location and status of each. Once all repeaters in the chain have completed the non-SCSI communication, the last repeater in the chain resumes pass-through functions and a target can be reached. The initiator and target can then initiate or resume standard SCSI communication.